package com.atguigu.gmall.payment.service;

import java.util.Map;

public interface AlipayService {
    /**
     * 调用支付宝接口产生支付页面
     *
     * @param orderId
     * @return
     */
    String createAlipayForm(Long orderId);

    /**
     * 处理用户支付成功后,支付宝异步通知用户支付结果接口
     * @param paramsMap 支付提交参数
     * @return "success" 支付宝收到该结果,停止通知 如果未响应"success"做到最大努力通知 额外通知7次
     */
    String notifyGmallPayResult(Map<String, String> paramsMap);

    /**
     * 双方协商一致后进行退款
     * @param orderId
     * @return
     */
    void refund(Long orderId);

    /**
     * 根据支付宝交易号,查询支付宝交易状态
     * @param tradeNo
     * @return
     */
    String getZfbTradeState(String tradeNo, String outTradeNo);

    /**
     * 根据支付宝交易号,关闭支付宝交易(支付二维码失效)
     *
     * @param tradeNo
     * @param outTradeNo
     */
    void closeZfbTrade(String tradeNo, String outTradeNo);
}
